package network;

import java.io.IOException;

import ctf.network.SocketClosedException;
import ctf.network.UninitializedSocketException;


/**
 * Interface used to extract network implementations.
 * @author N. Bhatia, A. Butt, N. Evans, C. Levesque, P. OKeefe
 *
 */
public interface INetworkAdapter {

	/**
	 * Sends a message out though a socket to a registered Client via its
	 * ID.
	 * @param message The response to send.
	 * @param clientID The Client to receive the message (response).
	 * @throws SocketClosedException
	 * @throws UninitializedSocketException
	 * @throws IOException
	 */
	public void sendMessage(String message, int clientID) throws SocketClosedException, UninitializedSocketException, IOException;
	
	/**
	 * Clears all current connections and reinitializes the network adapter
	 */
	public void reset();
}
